package com.tao.YanMoDesignPattern.factory.case1_pattern;

/**
 * @Author Mi_Tao
 * @Date 2023/8/5
 * @Description
 * @Version 1.0
 **/
public class ComputerEngineer {

    //定义好组装电脑需要的CPU
    private CPUApi cpuApi;
    //定义好组装电脑需要的主板
    private MainboardApi mainboardApi;

    private RAMApi ramApi;


    /**
     * 装机过程
     *
     * @param schema 模式
     */
    public void makeComputer(AbstractFactory schema){
        // 1 首先准备好装机需要的配件
        prepareHardwars(schema);
        //2 组装电脑
        //3 测试电脑
        //4 交付客户
    }


    private void prepareHardwars(AbstractFactory schema){
        // 准备cpu 和 主板的具体实现

        // 使用抽象工厂来获取相应的接口对象
        this.cpuApi = schema.createCPUApi();
        this.mainboardApi = schema.createMainboardApi();
        this.ramApi = schema.createRAM();
    }
}
